package com.shop.cereshop.commons.tencent.im.model.callback.request;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * @description: 腾讯云IM 回调请求参数
 * @author zdd
 * @date 2025/9/9 18:27
 * @version 1.0
 */
@Data
public class CallbackRequest implements Serializable {
    private static final long serialVersionUID = 3873269807641013358L;

    // --- 从 URL Query String 解析的参数 ---

    /**
     * App 在即时通信 IM 分配的应用标识
     */
    @JsonProperty("SdkAppid")
    private long sdkAppId;

    /**
     * 回调命令字
     */
    @JsonProperty("CallbackCommand")
    private String callbackCommand;

    /**
     * 可选，通常值为 JSON
     */
    @JsonProperty("contenttype")
    private String contentType;

    /**
     * 客户端 IP 地址
     */
    @JsonProperty("ClientIP")
    private String clientIp;

    /**
     * 客户端平台，对应不同的平台类型，可能的取值有：
     * RESTAPI（使用 REST API 发送请求）、Web（使用 Web SDK 发送请求）、
     * Android、iOS、Windows、Mac、iPad、Unknown（使用未知类型的设备发送请求）
     */
    @JsonProperty("OptPlatform")
    private String optPlatform;


    // --- 从 JSON Body 解析的通用字段 ---

    /**
     * 消息发送者 UserID
     */
    @JsonProperty("From_Account")
    private String fromAccount;

    /**
     * 消息接收者 UserID
     */
    @JsonProperty("To_Account")
    private String toAccount;

    /**
     * 消息唯一标识 (撤回回调和发送回调都有)
     */
    @JsonProperty("MsgKey")
    private String msgKey;

    /**
     * 事件触发时间戳 (毫秒)
     */
    @JsonProperty("EventTime")
    private Long eventTime;


}
